/*
Программа - секундомер
 */

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;


public class Secundomer implements ActionListener
{
    JLabel jlab;
    long start;

    Secundomer()
    {
       //создание контейнера верхнего уровня (JFrame)
       //при помощи конструктора
       JFrame jfrm= new JFrame("Secundomer");

       //Установка диспетчера компоновки FlowLayour
       jfrm.setLayout(new FlowLayout());

       //Установка начальник размеров фрейма
       jfrm.setSize(200,100);

       //Завершение программы при закрытии пользователем окна приложения
       jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

       //создание компонента верхнего уровня (JFrame)
       final JLabel jlab=new JLabel("Press a button...");

       //Создание кнопок
       JButton jbntStart=new JButton("Start");
       JButton jbntStop=new JButton("Stop");

       //Связывание кнопки Start с обработчиком событий
       jbntStart.addActionListener(new ActionListener()
       {
       public void actionPerformed(ActionEvent ae)
          {
        //Получение текущего системного времени
        Calendar cal=Calendar.getInstance();

            //сохранение времени запуска
            start=cal.getTimeInMillis();
            //вывод текста при нажатии
            jlab.setText("Start time...");
            //System.out.println("Start");


          }
       });
        //Связывание кнопки Stop с обработчиком событий
       jbntStop.addActionListener(new ActionListener()
       {
       public void actionPerformed(ActionEvent ae)
          {
           //Получение текущего системного времени
           Calendar cal=Calendar.getInstance();
           //вывод текста JLabel при нажатии кнопки Stop
           jlab.setText("Stop time: "+(double)(cal.getTimeInMillis()-start)/1000+" sec.");

          }
       });

       //Добавление кнопок в JFrame
       jfrm.add(jbntStart);
       jfrm.add(jbntStop);

       //Включение компонента в состав контейнера
       jfrm.add(jlab);




       //Отображение фрейма
       jfrm.setVisible(true);
    }
    //Обработка событий ActionEvent связанных с кнопками
    public void actionPerformed(ActionEvent ae)
    {
        //Получение текущего системного времени
        Calendar cal=Calendar.getInstance();

        //Использование команды действия для идентификации кнопки
        if(ae.getActionCommand().equals("Start"))
        {
            //сохранение времени запуска
            start=cal.getTimeInMillis();
            //вывод текста при нажатии
            jlab.setText("Start...");
            //System.out.println("Start");
        }
        else
            //вычисление времени от
            jlab.setText("time"+(double)(cal.getTimeInMillis()-start)/1000);
            //System.out.println("Stop: "+(double)(cal.getTimeInMillis()-start)/1000 + " sec.");

    }
           public static void main(String[] args)
   {
       //Создание фрейма в потоке обработки событий
       SwingUtilities.invokeLater
               (
               new Runnable()
                  {
                  public void run()
                    {
                     new Secundomer();
                    }
                  }
               );
   }


}
